[INFO] fetching crate usdpl-front 0.11.0...
[INFO] fixing usdpl-front-0.11.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate usdpl-front 0.11.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate usdpl-front 0.11.0
[INFO] finished tweaking crates.io crate usdpl-front 0.11.0
[INFO] tweaked toml for crates.io crate usdpl-front 0.11.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate usdpl-front 0.11.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 74 packages to latest compatible versions
[INFO] [stderr]       Adding gloo-net v0.4.0 (available: v0.7.0)
[INFO] [stderr]       Adding obfstr v0.3.0 (available: v0.4.4)
[INFO] [stderr]       Adding prost v0.11.9 (available: v0.14.4)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209
[INFO] running `Command { std: "docker" "start" "3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.125
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling wasm-bindgen v0.2.125
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking usdpl-core v0.11.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking wasm-bindgen-test-shared v0.2.125
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.75
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.125
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking prost v0.11.9
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking nrpc v0.10.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.125
[INFO] [stderr]     Checking js-sys v0.3.102
[INFO] [stderr]     Checking web-sys v0.3.102
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.75
[INFO] [stderr]     Checking wasm-bindgen-test v0.3.75
[INFO] [stderr]     Checking gloo-utils v0.2.0
[INFO] [stderr]     Checking gloo-net v0.4.0
[INFO] [stderr]     Checking usdpl-front v0.11.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/wasm/js_function_stream.rs (1 fix)
[INFO] [stderr]        Fixed src/client_handler.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client_handler.rs:45:19
[INFO] [stdout]     |
[INFO] [stdout]  45 |             match select(left, right).await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |                   |
[INFO] [stdout]     |                   |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                   up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  46 |                 Either::Left((next, outstanding)) => {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `next` calls a custom destructor
[INFO] [stdout]     |                               `next` will be dropped later as of Edition 2024
[INFO] [stdout]  47 |                    log::debug!("Got message to send over websocket");
[INFO] [stdout]  48 |                     if let Some(next) = next {
[INFO] [stdout]     |                                 ----
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  52 |                                     tx.send(Err(e.to_string())).await.unwrap_or(());
[INFO] [stdout]     |                                     ---------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |                             Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(())
[INFO] [stdout]     |                                 -     ---------------------------------
[INFO] [stdout]     |                                 |     |
[INFO] [stdout]     |                                 |     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                 |     `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 `e` calls a custom destructor
[INFO] [stdout]     |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  67 |                             Ok(Message::Bytes(b)) => tx.send(Ok(b.into())).await.unwrap_or(()),
[INFO] [stdout]     |                                                      ---------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                      `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  68 |                             Ok(_) => tx.send(Err("Message::Text not allowed".into())).await.unwrap_or(()),
[INFO] [stdout]     |                                      ------------------------------------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                      `#5` will be dropped later as of Edition 2024
[INFO] [stdout]  69 |                             Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(()),
[INFO] [stdout]     |                                       ---------------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  77 |                     (ws_sink, ws_stream) = ws.split();
[INFO] [stdout]     |                                            ----------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  81 |         } else if input_done {
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  86 |                     Ok(Message::Bytes(b)) => tx.send(Ok(b.into())).await.unwrap_or(()),
[INFO] [stdout]     |                                              ---------------------------
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                              `#8` will be dropped later as of Edition 2024
[INFO] [stdout]  87 |                     Ok(_) => tx.send(Err("Message::Text not allowed".into())).await.unwrap_or(()),
[INFO] [stdout]     |                              ------------------------------------------------------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                              `#9` will be dropped later as of Edition 2024
[INFO] [stdout]  88 |                     Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(()),
[INFO] [stdout]     |                               ---------------------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  96 |             (ws_sink, ws_stream) = ws.split();
[INFO] [stdout]     |                                    ----------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                    `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             match left.await { Some(next) => {
[INFO] [stdout]     |                   ----------        ----
[INFO] [stdout]     |                   |    |            |
[INFO] [stdout]     |                   |    |            this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   |    |            `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |    this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                   |    `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                   `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 106 |                             tx.send(Err(e.to_string())).await.unwrap_or(());
[INFO] [stdout]     |                             ---------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                             `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 109 |                     Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(())
[INFO] [stdout]     |                         -     ---------------------------------
[INFO] [stdout]     |                         |     |
[INFO] [stdout]     |                         |     this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                         |     `#17` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 117 |             (ws_sink, ws_stream) = ws.split();
[INFO] [stdout]     |                                    ----------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                                    `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `next` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `next` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | /         CACHE
[INFO] [stdout] 95 | |             .as_mut()
[INFO] [stdout]    | |_____________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | /         CACHE
[INFO] [stdout] 107 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:118:42
[INFO] [stdout]     |
[INFO] [stdout] 118 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:132:42
[INFO] [stdout]     |
[INFO] [stdout] 132 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client_handler.rs:45:19
[INFO] [stdout]     |
[INFO] [stdout]  45 |             match select(left, right).await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |                   |
[INFO] [stdout]     |                   |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]     |                   up until Edition 2021 `#19` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  46 |                 Either::Left((next, outstanding)) => {
[INFO] [stdout]     |                               ----
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `next` calls a custom destructor
[INFO] [stdout]     |                               `next` will be dropped later as of Edition 2024
[INFO] [stdout]  47 |                    log::debug!("Got message to send over websocket");
[INFO] [stdout]  48 |                     if let Some(next) = next {
[INFO] [stdout]     |                                 ----
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  52 |                                     tx.send(Err(e.to_string())).await.unwrap_or(());
[INFO] [stdout]     |                                     ---------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |                             Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(())
[INFO] [stdout]     |                                 -     ---------------------------------
[INFO] [stdout]     |                                 |     |
[INFO] [stdout]     |                                 |     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                 |     `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 `e` calls a custom destructor
[INFO] [stdout]     |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  67 |                             Ok(Message::Bytes(b)) => tx.send(Ok(b.into())).await.unwrap_or(()),
[INFO] [stdout]     |                                                      ---------------------------
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                                      `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  68 |                             Ok(_) => tx.send(Err("Message::Text not allowed".into())).await.unwrap_or(()),
[INFO] [stdout]     |                                      ------------------------------------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                      `#5` will be dropped later as of Edition 2024
[INFO] [stdout]  69 |                             Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(()),
[INFO] [stdout]     |                                       ---------------------------------
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  77 |                     (ws_sink, ws_stream) = ws.split();
[INFO] [stdout]     |                                            ----------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                            `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  81 |         } else if input_done {
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  86 |                     Ok(Message::Bytes(b)) => tx.send(Ok(b.into())).await.unwrap_or(()),
[INFO] [stdout]     |                                              ---------------------------
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                              `#8` will be dropped later as of Edition 2024
[INFO] [stdout]  87 |                     Ok(_) => tx.send(Err("Message::Text not allowed".into())).await.unwrap_or(()),
[INFO] [stdout]     |                              ------------------------------------------------------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                              `#9` will be dropped later as of Edition 2024
[INFO] [stdout]  88 |                     Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(()),
[INFO] [stdout]     |                               ---------------------------------
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                               `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  96 |             (ws_sink, ws_stream) = ws.split();
[INFO] [stdout]     |                                    ----------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]     |                                    `#11` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |             match left.await { Some(next) => {
[INFO] [stdout]     |                   ----------        ----
[INFO] [stdout]     |                   |    |            |
[INFO] [stdout]     |                   |    |            this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]     |                   |    |            `#14` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |    this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]     |                   |    `#13` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]     |                   `#12` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 106 |                             tx.send(Err(e.to_string())).await.unwrap_or(());
[INFO] [stdout]     |                             ---------------------------------
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]     |                             `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 109 |                     Err(e) => tx.send(Err(e.to_string())).await.unwrap_or(())
[INFO] [stdout]     |                         -     ---------------------------------
[INFO] [stdout]     |                         |     |
[INFO] [stdout]     |                         |     this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]     |                         |     `#17` will be dropped later as of Edition 2024
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]     |                         `#16` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 117 |             (ws_sink, ws_stream) = ws.split();
[INFO] [stdout]     |                                    ----------
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]     |                                    `#18` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#19` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#19` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `next` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `next` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#12` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#13` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#14` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#15` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#16` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#17` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.12.0/src/bytes.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.35s
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | /         CACHE
[INFO] [stdout] 95 | |             .as_mut()
[INFO] [stdout]    | |_____________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | /         CACHE
[INFO] [stdout] 107 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:118:42
[INFO] [stdout]     |
[INFO] [stdout] 118 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:132:42
[INFO] [stdout]     |
[INFO] [stdout] 132 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: usdpl-front v0.11.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking usdpl-front v0.11.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `encrypt`
[INFO] [stdout]   --> src/lib.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[cfg(feature = "encrypt")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `console_error_panic_hook`, `debug`, `decky`, `default`, `hex`, and `obfstr`
[INFO] [stdout]    = help: consider adding `encrypt` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/wasm/js_function_stream.rs:68:31
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn s_to_err(s: String) -> Box<(dyn std::error::Error + Send + Sync + 'static)> {
[INFO] [stdout]    |                               ^                                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 - fn s_to_err(s: String) -> Box<(dyn std::error::Error + Send + Sync + 'static)> {
[INFO] [stdout] 68 + fn s_to_err(s: String) -> Box<dyn std::error::Error + Send + Sync + 'static > {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `encrypt`
[INFO] [stdout]   --> src/lib.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[cfg(feature = "encrypt")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `console_error_panic_hook`, `debug`, `decky`, `default`, `hex`, and `obfstr`
[INFO] [stdout]    = help: consider adding `encrypt` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/wasm/js_function_stream.rs:68:31
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn s_to_err(s: String) -> Box<(dyn std::error::Error + Send + Sync + 'static)> {
[INFO] [stdout]    |                               ^                                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 - fn s_to_err(s: String) -> Box<(dyn std::error::Error + Send + Sync + 'static)> {
[INFO] [stdout] 68 + fn s_to_err(s: String) -> Box<dyn std::error::Error + Send + Sync + 'static > {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | /         CACHE
[INFO] [stdout] 95 | |             .as_mut()
[INFO] [stdout]    | |_____________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | /         CACHE
[INFO] [stdout] 107 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:118:42
[INFO] [stdout]     |
[INFO] [stdout] 118 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:132:42
[INFO] [stdout]     |
[INFO] [stdout] 132 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `usdpl-front` (lib test) due to 4 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/lib.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | /         CACHE
[INFO] [stdout] 95 | |             .as_mut()
[INFO] [stdout]    | |_____________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | /         CACHE
[INFO] [stdout] 107 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:118:42
[INFO] [stdout]     |
[INFO] [stdout] 118 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/lib.rs:132:42
[INFO] [stdout]     |
[INFO] [stdout] 132 |     if let Some(translations) = unsafe { TRANSLATIONS.as_ref().unwrap().get(&msg_id) } {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `usdpl-front` (lib) due to 4 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209", kill_on_drop: false }`
[INFO] [stdout] 3a250071c67a826096cd26ca34509ea85435e546e4fdfa295dc294b7a860e209
